// Global vars
var button_imprimir_todo_se;
var button_enviar_se;
var button_limpiar_se;
var DataStore_se;
var txt_nombre_se;
var	txt_detalle_se;
var	txt_precio_se;
var txt_sesiones_pago_se;
var var_id_servicio_se=-1;
var txt_buscar_servicios_se;


Ext.require([
    'Ext.grid.*',
    'Ext.data.*',
    'Ext.util.*',
    'Ext.state.*',
	'Ext.window.MessageBox',
    'Ext.tip.*'
]);

Ext.onReady(function(){

	Ext.QuickTips.init();
	
	Ext.define('modelo_columnas_s', {
        extend: 'Ext.data.Model',
        fields: [ 
            {name: 'cns', type: 'int', mapping: 'cns'},	
            {name: 'Id_servicio', type: 'int', mapping: 'Id_servicio'},	
            {name: 'nombre', type: 'string', mapping: 'nombre'},
			{name: 'detalle', type: 'string', mapping: 'detalle'},
			{name: 'sesiones_de_pago', type: 'int', mapping: 'sesiones_de_pago'},
			{name: 'precio', type: 'float', mapping: 'precio'}
		]
    });
	
	DataStore_se = new Ext.data.Store({
					model: 'modelo_columnas_s',
					id: 'DataStore_se',
					proxy: {
								type: 'ajax',
								url : 'db_servicio.php',            
								actionMethods: {
											read: 'POST'
								},
								extraParams: {
											task: 'LISTING',
								},
								reader: {
											root: 'results',
											totalProperty: 'total',
											id: 'id'
								}
					}
	});
	
	DataStore_se.load({params: {start: 0, limit: 20}});
	
	function crearNuevoRegistro()
	{		
		  	if(isFormValid())
			{				
					Ext.Ajax.request({
									waitMsg: 'Espere...',
									url: 'db_servicio.php',
									params: {
												task: "CREATE",
												txt_nombre_se: 			txt_nombre_se.getValue(),
												txt_detalle_se: 		txt_detalle_se.getValue(),
												txt_precio_se: 			txt_precio_se.getValue(),
												txt_sesiones_pago_se: 	txt_sesiones_pago_se.getValue()
											}, 
										success: function(response)
										{
											var result=eval(response.responseText);
											switch(result)
											{
												case 1:
														Ext.MessageBox.alert('Registro OK','Se creo el Servicio');
														limpiarpantalla();
														break;
												default:
														Ext.MessageBox.alert('Error','No se puede crear servicio... Error en la BD');
														break;									 
											}
										},
									failure: function(response)
									{			  
										var result=response.responseText;
										Ext.MessageBox.alert('Error','No se pudo conectar a la base de datos. Intenta nuevamente');
									}
					});				
			}
			else
			{
				Ext.MessageBox.alert('Error','Error en los datos');
			}
	}
	
	
	function updateRegistro()
	{		
		  	if(isFormValid())
			{
					Ext.Ajax.request({
									waitMsg: 'Espere...',
									url: 'db_servicio.php',
									params: {
												task: "UPDATE",
												Id_servicio:				var_id_servicio_se,
												txt_nombre_se: 				txt_nombre_se.getValue(),
												txt_detalle_se: 			txt_detalle_se.getValue(),
												txt_precio_se:				txt_precio_se.getValue(),
												txt_sesiones_pago_se:		txt_sesiones_pago_se.getValue()
											}, 
										success: function(response)
										{
											var result=eval(response.responseText);
											switch(result)
											{
												case 1:
														Ext.MessageBox.alert('Registro OK','Se Actualizo informacion del servicio');
														limpiarpantalla();
														break;
												default:
														Ext.MessageBox.alert('Error','No se tiene acceso... Error en la BD');
														break;									 
											}
										},
									failure: function(response)
									{			  
										var result=response.responseText;
										Ext.MessageBox.alert('Error','No se pudo conectar a la base de datos. Intenta nuevamente');
									}
					});
			}
			else
			{
				Ext.MessageBox.alert('Error','Error en los datos');
			}
	}
	
	
	function isFormValid()
	{
		return(	txt_nombre_se.isValid() && 
				!isNaN(txt_precio_se.getValue()) &&
				txt_sesiones_pago_se.isValid());
	}
	
	function limpiarpantalla()
	{
		txt_nombre_se.setValue("");
		txt_detalle_se.setValue("");
		txt_sesiones_pago_se.setValue("");
		txt_precio_se.setValue("");
		var_id_servicio_se=-1;
		DataStore_se.load({params: {start: 0, limit: 20}});
	}
	
	function imprimir_lista(){      
            win = window.open('./print_servicio.php','Lista de Servicios','height=400,width=600,resizable=1,scrollbars=1, menubar=1');
	}
	
	function imprimir_servicio(){
			if(var_id_servicio_se!=-1)
			{
				win = window.open("print_servicio_individual.php?nombre="+txt_nombre_se.getValue()+
																"&detalle="+txt_detalle_se.getValue()+
																"&txt_sesiones_pago_se="+txt_sesiones_pago_se.getValue()+
																"&precio="+txt_precio_se.getValue(),
									'Kardex','height=400,width=600,resizable=1,scrollbars=1, menubar=1');
			}
	}
	
	
	button_enviar_se = new Ext.Button({width: 100,text: 'Crear',tooltip: 'Crear',handler:crearNuevoRegistro}); 
	button_update = new Ext.Button({width: 100,text: 'Actualizar',tooltip: 'Actualizar Registro',handler:updateRegistro}); 
	button_limpiar_se = new Ext.Button({width: 100,text: 'Limpiar',tooltip: 'Limpiar pantalla',handler:limpiarpantalla}); 
	button_imprimir_servicio = new Ext.Button({width: 100,text: 'Imprimir servicio',tooltip: 'Imprimir servicio',handler:imprimir_servicio}); 
	button_imprimir_todo_se = new Ext.Button({width: 100,text: 'Imprimir lista',tooltip: 'Imprimir lista',handler:imprimir_lista}); 
  	
	
	txt_nombre_se = new Ext.form.TextField
					({
						id:				'txt_nombre_se',
						name:			'txt_nombre_se',
						fieldLabel: 	'Nombre',
						minLength: 		1,
						labelWidth:		160,
						selectOnFocus: 	true,
						blankText: 		'Nombre obligatorio',
						allowBlank: 	false,
						width: 			500,
						tabIndex:		1,
					});
					
    txt_detalle_se = new Ext.form.TextField
					({
							id: 			'txt_detalle_se',
							name:			'txt_detalle_se',
							fieldLabel: 	'Detalle',
							minLength: 		2,
							selectOnFocus:	true,
							blankText: 		'Apellido Paterno obligatorio',
							allowBlank: 	false,
							labelWidth:		160,
							width: 			600,
							tabIndex:		2,
					});
    
	txt_precio_se = new Ext.form.TextField
					({
							id: 			'txt_am_paterno',
							name:			'txt_am_paterno',
							fieldLabel:		'Precio',
							minLength: 		1,
							selectOnFocus: 	true,
							blankText: 		'Apellido Materno obligatorio',
							allowBlank: 	false,
							maskRe: 		/([0-9.\s]+)$/,
							labelWidth:		160,
							width: 			250,
							tabIndex:		3,
					});
	
	txt_sesiones_pago_se = new Ext.form.TextField
					({
							id: 			'txt_sesiones_pago_se',
							name:			'txt_sesiones_pago_se',
							fieldLabel:		'Sesiones de pago',
							minLength: 		1,
							selectOnFocus: 	true,
							blankText: 		'Sesiones de pago',
							allowBlank: 	false,
							maskRe: 		/([0-9.\s]+)$/,
							labelWidth:		160,
							width: 			250,
							tabIndex:		3,
					});
	
	txt_buscar_servicios_se = new Ext.form.TextField
					({
							id: 			'txt_buscar_servicios_se',
							name:			'txt_buscar_servicios_se',
							fieldLabel:		'Buscar',
							allowBlank: 	true,
							width: 			300,
							enableKeyEvents: true,
							listeners: {
										keyup: function(t,e){
																	DataStore_se.load({params:{nombre:txt_buscar_servicios_se.getValue()}});
															}
										}
					});
					
	});
	
	
	
	
  
	